'''
1.项目实战.py
项目分层：
    1.配置层： 根目录下 创建包 config ，创建conf.py
    2.通用模块： 根目录下 创建包 common ，常见log.py(一般是固定写法)
        存放通用工具文件, 比如log 管理, 文件读写 等
        log日志模块有了之后，后期用直接导包使用就行(log.py中测试代码中的语句，直接复制)
            yaml_tools.py
            用这个里面的代码读取yaml文件
        po模型： page object 页面对象
        basepage
    3.数据层： 根目录下创建文件夹 testdata ，存放 yaml 文件，用来存放测试数据
            logindata.yaml
    4.testcase 用例层
    日志
    报告

1.项目经验： ，覆盖核心模块的冒烟测试和回归测试，提升测试效率60%，降低版本迭代风险。
2.自动化测试怎么做的
    确定自动化测试的范围， 登录模块，后台管理模块， 功能测试用例确定可以用来做自动化测试的用例，
正向用例包括基本的冒烟测试用例，以及可以实现异常用例，比如说（举例子，确切说有哪些用例，正向/反向，
①输入正确的用户名和密码，登录成功
②输入不存在的用户名和密码，提示用户名密码不正确
用例范围确定后，搭建测试框架，并实现po模型
我们框架使用 python + selenium + yaml +allure 组成
大致分为四层，
    第一层是配置层 存放的是项目中常用的配置信息，包扣 项目url + 项目文件路径 ，数据库信息
    第二层：通用模块层， log管理模块 ， yaml文件操作模块 ， basepage po模型的父类 ，里面有一些页面常用操作，每个页面上通用的操作（
举例子，比如 文本框输入 按钮点击 超链接 框架切换 文本信息获取 下拉框操作 open quit wait）
邮件发送模块 ， 把报告发送给指定用户 ，
    第三层：数据层 ，使用的是yaml文件存放 测试用例中需要的测试数据 ， 使用@pytest.mark.parametrize("logindata",data)
    第四层： 用例层 test ，S
    test方法
    实现需求分析阶段中确定的用例

    （回归测试 ，每轮迭代之后）新版本提测后，执行自动化测试 ，测试人员手工测试新模块 ，旧模块由自动化脚本进行回归测试

    jenkins工具实现持续集成测试

    第五层： 报告层	Allure+Jenkins	可视化测试报告+历史趋势分析
执行策略：
    1.@pytest.mark.skip(reason="跳过原因")
    version = "1.1.1"
    2.@pytest.mark.skipif(version == "1.1.1",reason="不支持此版本")
    3.自定义标签
'''